package store.lunangangster.bpmn.model;

import java.util.ArrayList;
import java.util.List;

/**
 * FlowNode是一个抽象父类，该类对应的元素都可以与SequenceFlow进行关联。
 * <p>目前只有{@link Gateway}、{@link Activity}、{@link Event}对象可以作为该类的实现子类
 * 
 * @author cwk
 * @version 1.0
 */
public abstract class FlowNode extends FlowElement {

  protected List<SequenceFlow> incoming = new ArrayList<>();
  protected List<SequenceFlow> outgoing = new ArrayList<>();

  // Activity的具体行为，该行为由NodeFlow定义，而非Bpmn，所以此处使用Object
  protected Object behavior;

  public List<SequenceFlow> getIncoming() {
    return incoming;
  }

  public void setIncoming(List<SequenceFlow> incoming) {
    this.incoming = incoming;
  }

  public List<SequenceFlow> getOutgoing() {
    return outgoing;
  }

  public void setOutgoing(List<SequenceFlow> outgoing) {
    this.outgoing = outgoing;
  }

  public Object getBehavior() {
    return behavior;
  }

  public void setBehavior(Object behavior) {
    this.behavior = behavior;
  }
}
